using System;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace EventMsg;

public interface ISyncEventConsistency
{
	Task<EventParameterResponse<string>> AddEventAsync(string name);

	Task<EventParameterResponse<T>> ExcuteEvent<T>(string name, Action startEvent, Action actionTimeOutCallBack, int timeOut = 40);

	EventMessage GetExcuteEvent(string name);

	List<string> GetExcuteEventName(string name);

	void CompleteEvent(string name, object body, EventEnum eventEnum, string errormsg = "");
}
